Tuples¶

🎨 float¶

In [24]:
number = 3.1415
In [25]:
type(number)
Out[25]:
float
In [26]:
float('3')
Out[26]:
3.0
In [27]:
float('3.1415') * 2
Out[27]:
6.283

🎨 round¶

In [5]:
round(3.14159, 2)
Out[5]:
3.14
In [6]:
round(3.14159, 4)
Out[6]:
3.1416
In [7]:
apples = 7
people = 3
per_person = apples / people
print(f'Each person gets { per_person } apples')
Each person gets 2.3333333333333335 apples
🤨
In [9]:
apples = 7
people = 3
per_person = round(apples / people, 1)
print(f'Each person gets { per_person } apples')
Each person gets 2.3 apples

🎨 None¶

What is the value of a variable that doesn't have a value?

What does a function return when it doesn't return anything?

In [10]:
def no_return():
    print('This function doesn\'t return anything.')
    

value = no_return()

print(value)
This function doesn't return anything.
None
In [11]:
type(value)
Out[11]:
NoneType

None is what Python uses to communicate nothing.

It's what you use to indicate that you don't have any information.

In [15]:
thing = 8
thing is None
Out[15]:
False
In [13]:
thing = None
thing is None
Out[13]:
True

To determine whether a variable is None, use the is None expression.

In [16]:
thing = 9
thing is not None
Out[16]:
True

To determine whether a variable is not None, use the is not None expression.

🎨 tuple¶

In [17]:
info = ('Gordon', 'Bean', 38)

A tuple is a collection of data, like a list.

A list stores a sequence of data that has the same role or quality.

  • e.g. Everyone's first name
    • ['John', 'Mary', 'Susan', 'David']
      

A tuple stores distinct pieces of information that belong together as a larger unit.

  • e.g. The first name, last name, and age of a single person
    • ('John', 'Doe', 21)
      
In [18]:
info
Out[18]:
('Gordon', 'Bean', 38)
In [19]:
first, last, age = info

print(f'{last}, {first} ({age})')
Bean, Gordon (38)
In [20]:
print(info)
('Gordon', 'Bean', 38)

We access the pieces of a tuple using unpacking.

The first item in the tuple is assigned to the first variable, the second item to the second variable, etc.

🖌 Multiple Return¶

In [21]:
def get_number_pair():
    first = int(input('First number: '))
    second = int(input('Second number: '))
    return first, second
In [23]:
print('First pair')
a, b = get_number_pair()

print('Second pair')
x, y = get_number_pair()

if a + b > x + y:
    print('The first pair is bigger')
else:
    print('The second pair is bigger (or they are equal)')
First pair
First number: 7
Second number: 13
Second pair
First number: 2
Second number: 50
The second pair is bigger (or they are equal)

registration.py¶

  • get_participant
    • Returns None to communicate "no person"
    • Returns a tuple of (first, last, age)
  • register_participants
    • If the participant is None, we're done adding participants
    • Delegates the logic of what information is required to get_participant
  • print_participants
    • Uses unpacking to get the first name, last name, and age of each participant (one at a time)

👩🏻‍🎨 meal_planner.py¶

Write a program that builds up a meal plan for several days.

An individual meal needs a grain, vegetable, and fruit.

Allow the user to plan out as many meals as they want.

Then print out the planned meals.

Plan a meal
Grain: rice
Vegetable: broccoli
Fruit: strawberry
Plan a meal
Grain: pasta
Vegetable: peas
Fruit: cranberry
Plan a meal
Grain: bread
Vegetable: carrots
Fruit: apples
Plan a meal
Grain: 

You planned 3 meals:
Grain: rice, Veggy: broccoli, Fruit: strawberry
Grain: pasta, Veggy: peas, Fruit: cranberry
Grain: bread, Veggy: carrots, Fruit: apples

Key Ideas¶

  • None
  • tuple
  • Tuple unpacking
  • Multiple return
  • Lists of tuples